Анализатор нашёл лишль одну ошибку: C6031 Return value ignored Return value ignored: 'scanf'. UndetectDefect undetect_defect_sample.c 25 Это ошибка обработки возвращаемого значения, которая в предыдущем примере была расмотренна. Ошибки найденные посредством ручного Code Review: 1) На троке 38 в цикле for в случае неудачной попытки аллокации памяти, выполняется exit(-1) - что завершает процесс, однако не производится очистка уже аллоцированных ресурсов за предыдущие витки цикла, если ось отслеживает аллоцированную память, то она её очистит при удалени процесса, но в общем случае - это ошибка 2) Строка 47 - "Потеря указателя". Мы теряем указатель на начальную структуру el, (ведь сами структуры организовываются подобно списку), и присвоив NULL - мы потеряли голову, и уже не сможем её вернуть. Мы могли бы подумать, что указатель всё ещё остался лежать в p_current, т.к. он копировался на строке 29, однако этот указатель внутри цикла неоднократно присваивался (и только если пользователь 9 раз ввёл не приемлимые данные и сработал каждый раз continue указатель не будет потерян и программа завершится корректно) 3) Строка 52 - "Утечка памяти" - в момент окончания работы функции - была очищена лишь структура, на которую указывал p_current но не были очищенны другие структуры, которые были аллоцированны на других витках цикла, и не была очищена структура, которая была аллоцированна на строке 21 Дефекты не были обнаружены анализатором по той, причине, что манипуляции с указателями имеют сложные зависимости и отследить их трудно даже в элементарных программах, и не при статическом анализе, а при динамическом, например при использовании valgrind По этой причине отслеживание таких проблем, как утечка памяти, появление висячих ссылок, потеря указателя на аллоцированные данные - статическим анализатором, делающим code analysis - не отлавливаются Вывод: точность анализа - плохая среди 4-х ошибок найдена лишь одна, причём эта одна является единственной, не критичной с точки зрения безопасности, однако анализатор пропустил всё, что касалось утечек памяти строго говоря точность - 25% (1 из 4-х ошибок)